/// <reference path = "../dist/vri.d.ts" />

const { Vri, errorTemplates } = require('../dist/vri')

// const vri = new Vri({
//   type: 'object',
//   retain(key) {
//     console.log(key);
//     return key !== 'aaa'
//   },
//   attr: {
//     name: {
//       type: ['string', 'number'],
//       error: 'name校验失败',
//     },
//     sex: {
//       type: 'string',
//       default: (key, { param }) => key + ' 的默认值' + param,
//     },
//   },
// })

// const rtn = vri.verifies(
//   {
//     name: 'fly',
//     // sex: '男',
//     www: '1',
//     aaa: '2',
//   },
//   'param'
// )
Object.assign(errorTemplates, {
  type: '[key]类型必须为[schema]',
  must: '缺少必选属性[key]',
  max: '[key]不能大于[schema]',
  min: '[key]不能小于[schema]'
})
const vri = new Vri({
  type: 'object',
  attr: {
    table: {
      must: true,
      min: 2
    },
    id: {
      must: '缺少id',
      max: 2,
      as: 'uid'
    },
    data: {
      type: 'array',
      item: {
        type: 'string'
      },
      filter(v) {
        return v.length > 2
      }
    },
  },
})

const map = {
  table: '表格名'
}

Vri.keyMap = (k) => {
  return map[k]
}

const rtn = vri.verifies({
  id: '2',
  data: ['123', '1', 'daaa', 'dasdsa', 'a']
})

if (!rtn.adopt) console.log(rtn.error.toString());
